package com.yami.shop.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yami.shop.bean.dto.InventoryImportDTO;
import com.yami.shop.bean.dto.ProdInventoryDTO;
import com.yami.shop.bean.model.ProdInventory;

import java.util.List;

/**
 * 商品详细库存Service
 */
public interface ProdInventoryService extends IService<ProdInventory> {
    /**
     * 分页查询商品详细库存列表
     * @param page 分页参数
     * @param prodId 商品ID
     * @param shopId 店铺ID
     * @param categoryId 分类ID
     * @param status 状态
     * @return 分页结果
     */
    IPage<ProdInventoryDTO> pageProdInventory(Page<ProdInventoryDTO> page, Long prodId, Long shopId, Long categoryId, Integer status);

    /**
     * 获取商品详细库存详情
     * @param id 库存ID
     * @return 商品详细库存详情
     */
    ProdInventoryDTO getProdInventoryById(Long id);

    /**
     * 添加商品详细库存
     * @param prodInventory 商品详细库存
     */
    void addProdInventory(ProdInventory prodInventory);

    /**
     * 批量添加商品详细库存
     * @param inventoryImportDTO 商品详细库存列表
     */
    void batchAddProdInventory(InventoryImportDTO inventoryImportDTO);

    /**
     * 更新商品详细库存
     * @param prodInventory 商品详细库存
     */
    void updateProdInventory(ProdInventory prodInventory);

    /**
     * 删除商品详细库存
     * @param id 库存ID
     */
    void deleteProdInventory(Long id);

    /**
     * 批量删除商品详细库存
     * @param ids 库存ID列表
     */
    void batchDeleteProdInventory(List<Long> ids);


} 